/*
 * Getrap
 * Copyright 2008(C) Grzegorz 'milyges' Glinski
 *
 *
 *  This program is free software; you can redistribute it and/or modify it
 *  under the terms of the GNU General Public License as published by the Free
 *  Software Foundation; either version 2 of the License, or (at your option)
 *  any later version.
 *
 *  This program is distributed in the hope that it will be useful, but
 *  WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
 *  or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
 *  for more details.
 *
 *  You should have received a copy of the GNU General Public License along
 *  with this program; if not, write to the Free Software Foundation, Inc.,
 *  59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 *
*/
#ifndef __FMAIN_H
#define __FMAIN_H

#include "ui_fMain.h"
#include <QMainWindow>
#include <QSystemTrayIcon>
#include <QMenu>

class FMain : public QMainWindow
{
 Q_OBJECT
 private:
   /** Układ okna */
   Ui_fMain ui;
   /** Ikonka w zasobniku systemowym */
   QSystemTrayIcon * mTrayIcon;
   /** Menu ikonki w zasobniku */
   QMenu * mTrayMenu;
 private slots:
   /** Dodaj linki */
   void addLinks(void);
   /** Usuń zaznaczone zadania */
   void removeItems(void);
   /** Pokaż okno "O programie..." */
   void about(void);
   /** Pokaż okno ustawień */
   void settings(void);
   /** Rozpocznij pobieranie zaznaczonych plików */
   void startDownload(void);
   /** Zatrzymaj pobieranie zaznaczonych plików */
   void stopDownload(void);
   /** Uruchom wszystkie zadania */
   void startAll(void);
   /** Zatrzymaj wszystkie zadania */
   void stopAll(void);
   /** Obsługa ikonki w zasobniku
     * @param reason informacja o powodzie wywołania slotu
     */
   void trayActivated(QSystemTrayIcon::ActivationReason reason = QSystemTrayIcon::DoubleClick);
   /** Obsługa fatalnych błędów
     * @param msg Informacja o błędzie
     */
   void fatalError(QString msg);
   /** Informacja o zakończeniu pobierania pliku
     * @param fileName nazwa pliku
     */
   void downloadDone(QString fileName);
 public:
   FMain(QWidget * parent = 0, Qt::WFlags f = 0);
   ~FMain();
};

#endif
